#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>

#import "Constants.h"
#import "PYCapturedImageViewController.h"
#import "PYCaptureSessionManager.h"
#import "PYImageGalleryButton.h"
#import "PYImageGalleryViewController.h"
#import "PYImageCountButton.h"

static CGPoint imageCountViewCenter_;
static CGSize imageCountViewSize_;

@interface PYCaptureViewController : UIViewController <UIGestureRecognizerDelegate, PYImageGalleryDelegate, PYCaptureSessionManagerDelegate>
{
    @private

    AVCaptureVideoPreviewLayer* previewLayer_;
    IBOutlet UISlider* imageCountSlider_;
    IBOutlet UIView* tapAnywhereImageView_; // We use this outlet to calculate the animation endpoint for the "Tap Anywhere" hint when we hide it after the first capture
    IBOutlet UIView* tapAnywhereMessageView_;
    IBOutlet UIView* previewView_;
    IBOutlet PYImageCountButton* imageCountButton_;
    IBOutlet UIView* imageCountView_;
    IBOutlet UILabel* imageCountLabel_;
    IBOutlet UITapGestureRecognizer* tapGestureRecognizer_;
    IBOutlet UIView* toolbar_;
    IBOutlet UIButton* galleryButton_;
    IBOutlet UIProgressView* progress_view_;
}

-(void)shoot;
-(IBAction)tapWasRecognized:(id)sender;
-(IBAction)imageCountButtonWasClicked:(id)sender;
-(IBAction)imageGalleryButtonWasClicked:(id)sender;
-(IBAction)sliderWasSlid:(id)sender;
-(IBAction)sliderDoneSliding:(id)sender;

@property (retain) PYCapturedImageViewController* capturedImageViewController;

@end

@interface PYCaptureViewController (InternalMethods)

-(void)hideTapAnywhereHint;

@end
